CMAKE_MINIMUM_REQUIRED(VERSION 3.18)
PROJECT(UT2004)

include("../configure.cmake")

SET(
    CORE_SRC
    Inc/afxres.h
    Inc/Core.h
    Inc/FCodec.h
    Inc/FConfigCacheIni.h
    Inc/FFeedbackContextAnsi.h
    Inc/FFeedbackContextWindows.h
    Inc/FFileManagerAnsi.h
    Inc/FFileManagerArc.h
    Inc/FFileManagerGCN.h
    Inc/FFileManagerGeneric.h
    Inc/FFileManagerLinear.h
    Inc/FFileManagerPSX2.h
    Inc/FFileManagerUnix.h
    Inc/FFileManagerWindows.h
    Inc/FFileManagerXbox.h
    Inc/FMallocAnsi.h
    Inc/FMallocDebug.h
    Inc/FMallocGCN.h
    Inc/FMallocPSX2.h
    Inc/FMallocWindows.h
    Inc/FOutputDeviceAnsiError.h
    Inc/FOutputDeviceDebug.h
    Inc/FOutputDeviceFile.h
    Inc/FOutputDeviceNull.h
    Inc/FOutputDeviceStdout.h
    Inc/FOutputDeviceWindowsError.h
    Inc/FRiffChunk.h
    Inc/OpCode.h
    Inc/UExporter.h
    Inc/UFactory.h
    Inc/UnArc.h
    Inc/UnBits.h
    Inc/UnBuild.h
    Inc/UnCache.h
    Inc/UnCId.h
    Inc/UnClass.h
    Inc/UnCoreNative.h
    Inc/UnCoreNet.h
    Inc/UnCorObj.h
    Inc/UnFile.h
    Inc/UnForcePacking_begin.h
    Inc/UnForcePacking_end.h
    Inc/UnGCN.h
    Inc/UnGCNEmu.h
    Inc/UnGnuG.h
    Inc/UnLinker.h
    Inc/UnMath.h
    Inc/UnMem.h
    Inc/UnMsg.h
    Inc/UnMWerks.h
    Inc/UnName.h
    Inc/UnNames.h
    Inc/UnObjBas.h
    Inc/UnObjVer.h
    Inc/UnPSX2.h
    Inc/UnScript.h
    Inc/UnStack.h
    Inc/UnTemplate.h
    Inc/UnType.h
    Inc/UnUnix.h
    Inc/UnVcWin32.h

    Src/Core.cpp
    Src/UExporter.cpp
    Src/UFactory.cpp
    Src/UnAnsi.cpp
    Src/UnArc.cpp
    Src/UnBits.cpp
    Src/UnCache.cpp
    Src/UnClass.cpp
    Src/UnCoreNative.cpp
    Src/UnCoreNet.cpp
    Src/UnCorSc.cpp
    Src/UnGCN.cpp
    Src/UnLinker.cpp
    Src/UnMath.cpp
    Src/UnMem.cpp
    Src/UnMisc.cpp
    Src/UnName.cpp
    Src/UnObj.cpp
    Src/UnProp.cpp
)

if (WIN32)
    LIST(APPEND CORE_SRC
        Src/UnVcWin32.cpp
        Core.natvis
    )
elseif (UNIX)
    LIST(APPEND CORE_SRC
        Src/UnUnix.cpp
        Src/UnGUID.cpp
    )
endif()

file(GLOB CORE_CLASSES CONFIGURE_DEPENDS "Classes/*.uc")

set(CORE_DEPS "")

if (WIN32)
    list(APPEND CORE_DEPS winmm.lib PowrProf.lib)
endif()

add_unreal_native_package(Core
    NO_HEADER
    CLASSES ${CORE_CLASSES}
    SOURCES ${CORE_SRC}
    DEPENDS_ON ${CORE_DEPS}
)

target_include_directories(CoreLib PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../Audio/vorbis/include")
target_include_directories(CoreLib PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../Audio/ogg/include")
